package shop.local.valueobjects;

import shop.local.domain.exceptions.EreignisExistiertNichtException;
import shop.local.domain.exceptions.KundeExistiertNichtException;

import java.util.HashMap;

public class Ereignisliste extends HashMap<Integer, Ereignis> {

	private static final long serialVersionUID = -6693407413983504534L;

	public Ereignisliste() {}

	public Ereignis gibEreignis(int ErgID) throws EreignisExistiertNichtException {
		boolean existiert = false;
		for (int i = 1; i <= this.size(); i++) {
			if (this.get(i).getID() == ErgID) {
				existiert = true;
				return this.get(i);
			}
		}
		if (!(existiert)) {
			throw new EreignisExistiertNichtException();
		}
		return null;
	}
	
	public Ereignis letztesEreignis() {
		return this.get(this.size());
	}



	public void einfuegen(Ereignis e) {
		if (this.size() == 0) {
			this.put(1, e);
		}
		else {
			this.put(this.size() + 1, e);
		}
	}

	public void loeschen(int ErgID) throws EreignisExistiertNichtException {
		boolean geloescht = false;
		for (int i = 1; i <= this.size(); i++) {
			if (this.get(i).getID() == ErgID) {
				this.remove(i);
				geloescht = true;
			}
		}
		if (!(geloescht)) {
			throw new EreignisExistiertNichtException();
		}
	}


	// toString Methode Ueberschrieben
	public String toString() {
		String result = "";
		String zeilenEnde = System.getProperty("line.separator");
		for (int i = 1; i <= this.size(); i++) {
			result = result + this.get(i) + zeilenEnde;
		}
		return result;
	}
}